Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Алгоритми факторизації складених чисел

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
РТ
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2010
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмічні основи криптології
Група:
БІ

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” ІКТА кафедра захисту інформації З В І Т до лабораторної роботи №4 з курсу: “Алгоритмічні основи криптології ” на тему: “Алгоритми факторизації складених чисел” Варіант № 25 1. Мета роботи. 2. Повний текст завдання. 3. Блок-схема алгоритму. 4. Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення. 5. Остаточно відлагоджений текст програми згідно з отриманим завданням . 6. Результати виконання програми. 1. Мета роботи Вивчити основні алгоритми факторизації складних чисел. 2. Завдання Реалізувати програму, що дозволяє знаходити розкладання на множники заданого числа n комбінованим методом: р-Полларда і пробних ділень; 3. Блок-схема алгоритму randomNumber(int n) factorise(int n) check(int secondDiv) SCD(int firstNumber, int secondNumber) button1_Click(object sender, EventArgs e) 4. Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення. massDiv – масив типу int, що приймає значення дільників; j, x, oldx, d – змінні типу int, що використовуються у методі р-Полларда; n — змінна, що факторизується; correction — змінна, що відповідає за точність результату; randomNumber()– метод, що генерує випадкове число; check()– метод логічного типу, що повертає відповідне значеня в залежності від числа; factorise ()– метод р-Полларда факторизації складного числа; SCD ()– метод, що повертає найменше спільне кратне двох чисел; Form1_Load ()– метод, що виконується безпосередньо післа завантаження програми; button1_Click () – метод, який виконує моделацію натиску на програмну кнопку; 5. Текст програми using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace k2_s2_lab4 { public partial class Form1 : Form { public static List<int> massDiv = new List<int>(); public static int massDivLength; public static int j, x, oldx, d, n; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int temp; textBox2.Text = ""; try { n = Convert.ToInt32(textBox1.Text); } catch (Exception) { textBox2.Text = " Avaible range 3<number<2147000598; "; return; } if (n < 3) { textBox2.Text = " Avaible range 3<number<2147000598; "; return; } factorise(n); int secondDiv = n / d; textBox2.Text += d; while (true) { if (check(secondDiv) == true) { textBox2.Text += " * " + SCD(secondDiv, secondDiv); temp = secondDiv / SCD(secondDiv, secondDiv); if (check(temp) == false) { textBox2.Text += " * " + temp; break; } else { secondDiv = temp; } } else { textBox2.Text += " * " + secondDiv; break; } } } private bool check(int secondDiv) { for (int i = 0; i < massDivLength; i++) { if (secondDiv == massDiv[i]) break; if (secondDiv % massDiv[i] == 0) { return true; } } return false; } private int factorise(int n) { d = 1; j = 1; if (check(n) == false) { textBox2.Text = "Number " + n + " is prime -> "; return 0; } x = RandomNumber(n-1); while (true) { oldx = x; for (int i = 1; i < j; i++) { x = ((x * x) + 1) % n; d = SCD(Math.Abs(x - oldx), n); if (d > 1 && d < n) { return d; } } j *= 2; } ...
Антиботан аватар за замовчуванням

22.05.2013 21:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини